home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / 07_02.iso / software / xq-xsetup / files / setup.exe / {app} / plugins / XQ CD AutoStart Options 2.xpl < prev    next >
Text File  |  2000-12-09  |  4KB  |  133 lines

  1. "FILE"="Xteq Systems X-Setup Plugin 6.0"
  2. "TYPE"="6"
  3. "COUNT"="4"
  4. "UIPATH"="System\File System\CD Autostart"
  5. "NAME"="Autostart Data CD"
  6. "VERSION"="1.54"
  7. "LANGUAGE"="VBScript"
  8. "TEXT 1"="Allow autostart for CD-ROMs (normal)"
  9. "TEXT 2"="Allow autostart for removable drives (diskettes, ZIP)"
  10. "TEXT 3"="Allow autostart for fixed drives (HD)"
  11. "TEXT 4"="Allow autostart for network drives"
  12. "DESCRIPTION 1"="If you normally insert a CD in your CD-ROM-drive, Windows starts a program using the file AUTORUN.INF."
  13. "DESCRIPTION 2"="If you do not like this behavior, or want to enable this behavior for other drives also, you can do it here."
  14. "DESCRIPTION 3"="IMPORTANT: If you activate AutoRun for removable devices or network drives, Windows will check these drives every time you open the Explorer or a file requester in an application. Because this check takes some time, this behavior can be really annoying. Please keep this in mind."
  15. "AUTHOR"="Xteq Systems"
  16. "CONTACTURL"="http://www.xteq.com"
  17. "COPYRIGHT"="Copyright ⌐ Xteq Systems - All Rights Reserved"
  18. "COMMENT 1"="This was a hell lot of work!" 
  19. "COMMENT 2"="Special thanks to Tony Caine (72614.1451@compuserve.com) who has helped us a lot with this plug-in. Also thanks to Guy (dr_teeth@bigfoot.com)."
  20. "COMMENT 3"="Thanks to Sander Goudswaard [sander@goudswaard.cx] for the "...START vs ...RUN" notice!"
  21. "COMMENT 4"="Thanks to totalXS for his help!"
  22.  
  23.  
  24.  
  25. 'What about this key?
  26. 'HKLM\System\CurrentControlSet\Services\Cdrom\Autorun
  27.  
  28. 'Declaration of some constants
  29. DRIVE_UNKNOWN=1   'Bit 0
  30. DRIVE_NO_ROOT=2   'Bit 1
  31. DRIVE_REMOVABLE=4 'Bit 2 
  32. DRIVE_FIXED=8     'Bit 3 
  33. DRIVE_REMOTE=16   'Bit 4 
  34. DRIVE_CDROM=32    'Bit 5 
  35. DRIVE_RAMDISK=64  'Bit 6 
  36. DRIVE_FUTURE=128  'Bit 7 
  37.  
  38. sPathValue="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun"
  39.  
  40. 'Called when the Plugin is started
  41. SUB Plugin_Initialize
  42.  s=RegReadValue(sPathValue)
  43.  
  44.  dim i
  45.  if len(s)>1 then
  46.     s=left(s,2)
  47.     i=s
  48.  else
  49.     i=CInt(0)
  50.  end if
  51.  
  52.  '//Convert the value to INT
  53.  s="&H" & i
  54.  i=CInt(s)
  55.  
  56.  
  57.  'TH: Looks stupid, I know! but there is no way to get OR working with variants!
  58.  'AK: JScript ||. Should work
  59.  
  60.  dim b1,b2,b3,b4,b5,b6,b7
  61.  i=OrHelper(i,DRIVE_FUTURE,b1)
  62.  i=OrHelper(i,DRIVE_RAMDISK,b2) 
  63.  i=OrHelper(i,DRIVE_CDROM,b3)
  64.  i=OrHelper(i,DRIVE_REMOTE,b4)
  65.  i=OrHelper(i,DRIVE_FIXED,b5)
  66.  i=OrHelper(i,DRIVE_REMOVABLE,b6)
  67.  i=OrHelper(i,DRIVE_NO_ROOT,b7)
  68.  
  69.  
  70.  '//If the bit is set, AutoRun is DISABLED
  71.  Call SetBox(b3,1)
  72.  Call SetBox(b6,2)
  73.  Call SetBox(b5,3)
  74.  Call SetBox(b4,4)
  75. END SUB
  76.  
  77. Function OrHelper(CurValue,CheckVal,CheckValSet)
  78.  i=CurValue
  79.  
  80.  if i>=CheckVal then
  81.     CheckValSet=true
  82.     i=i-CheckVal
  83.  else
  84.     CheckValSet=false
  85.  end if
  86.  
  87.  OrHelper=i
  88. End Function
  89.  
  90. Sub SetBox(CurVal,Elm)
  91.     if CurVal=true then
  92.        SetUIElement elm,false
  93.     else
  94.        SetUIElement elm,true
  95.     end if
  96. End Sub
  97.  
  98.  
  99. 'Called when the Plugin should validate the Data the user has entered
  100. SUB Plugin_CheckData(ElementIndex)
  101. END SUB
  102.  
  103. 'Called when the Plugin should apply the changes
  104. SUB Plugin_Apply(ElementIndex,ElementSubIndex)
  105.  i=0
  106.  
  107.  'Always disable autorun for the following drives 
  108.  'according to Q136214 from MS KB
  109.  i=i+DRIVE_UNKNOWN
  110.  i=i+DRIVE_FUTURE
  111.  '//Needed??? i=i+DRIVE_NO_ROOT
  112.  
  113.  
  114.  'No let's see what the user wants
  115.  if GetUIElement(1)=false then i=i+DRIVE_CDROM
  116.  if GetUIElement(2)=false then i=i+DRIVE_REMOVABLE
  117.  if GetUIElement(3)=false then i=i+DRIVE_FIXED
  118.  if GetUIElement(4)=false then i=i+DRIVE_REMOTE
  119.  
  120.  'Convert to HEX so XSET can write the value
  121.  Dim v
  122.  v=Hex(i) 
  123.  v=v & "000000"
  124.  
  125.  
  126.  Call RegWriteValue(sPathValue,v,3)
  127.  Call Restart
  128. END SUB
  129.  
  130. 'Called when the Plugin is about to be removed from memory
  131. SUB Plugin_Terminate
  132. END SUB
  133.